/**
 * description：电影信息
 * author：洪俊勇
 * createTime：2017/9/8
 * version:1.0.0.0
 * history:
 *   1、
 *   2、
 */
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = Schema.Types.ObjectId;

var MovieSchema = new Schema({
    doctor:String,
    title:String,
    language:String,
    country:String,
    summary:String,
    flash:String,
    poster:String,
    year:Number,
    pv:{
        type:Number,
        default:0
    },
    catetory:{
        type:ObjectId,
        ref:'Catetory'
    },
    meta:{
        createAt:{
            type:Date,
            default:Date.now()
        },
        updateAt:{
            type:Date,
            default:Date.now()
        }
    }
});

/**
 * 每次存储的时候都来调用这个方法
 */
MovieSchema.pre('save',function(next){
    if(this.isNew){//判断数据是否新加的
        this.meta.createAt = this.meta.updateAt = Date.now();
    }else{
        this.meta.updateAt = Date.now();
    }

    // 让存储流程继续走下去
    next()
});


MovieSchema.statics = {
    /**
     * 取出数据库中所有数据
     * @param cb
     * @returns {Promise|Array|{index: number, input: string}|*|{npmUpdate}}
     */
    fetch:function(cb){
        return this
            .find({})
            .sort('meta.updateAt')
            .exec(cb)
    },
    /**
     * 根据id查询
     * @param id
     * @param cb
     * @returns {Promise}
     */
    findById:function(id,cb){
        return this
            .findOne({_id:id})
            .exec(cb)
    }
};

//把模式导出
module.exports = MovieSchema;
